USB 序列驅動程式 (Usbser.sys)

您所在的位置:网站首页 usb serial converter驱动win7 USB 序列驅動程式 (Usbser.sys)

USB 序列驅動程式 (Usbser.sys)

2023-08-11 15:22| 来源: 网络整理| 查看: 265

USB 序列驅動程式 (Usbser.sys) 發行項 06/15/2023

重要

本主題適用于程式設計人員。 如果您是客戶遇到 USB 問題,請參閱 針對常見的 USB 問題進行疑難排解

支援的版本 Windows 11 Windows 10 Windows 8.1 適用於 CDC 控制裝置的裝置製造商

Microsoft 提供的內建驅動程式 (Usbser.sys通訊 和 CDC 控制裝置) 。

在Windows 10中,驅動程式已使用核心模式驅動程式架構重寫,以改善驅動程式的整體穩定性。

改善驅動程式的隨插即用和電源管理。 已新增電源管理功能,例如 USB 選擇性暫停。

此外,UWP 應用程式現在可以使用 Windows.Devices.SerialCommunication 命名空間所提供的 API,讓 app 能夠與這些裝置通訊。

Usbser.sys安裝

為您的通訊和 CDC 控制裝置載入 Microsoft 提供的內建驅動程式 (Usbser.sys) 。

注意

如果您嘗試安裝包含在 Windows 中的 USB 裝置類別驅動程式,則不需要下載驅動程式。 系統會自動安裝它們。 如果未自動安裝,請連絡裝置製造商。 如需 Windows 中包含的 USB 裝置類別驅動程式清單,請參閱 Windows 中包含的 USB 裝置類別驅動程式。

Windows 10 及更新版本

從 Windows 10 開始,Usbser.inf已新增至 %Systemroot%\INF 目錄,它會將Usbser.sys載入為裝置堆疊中 (FDO) 的功能裝置物件。 如果您的裝置屬於通訊和 CDC 控制裝置類別, 則會自動載入Usbser.sys 。 您不需要撰寫自己的 INF 來參考驅動程式。 驅動程式會根據與 Windows 中包含的其他 USB 裝置類別驅動程式類似的相容識別碼來載入。

USB\Class_02

USB\Class_02&SubClass_02

如果您想要自動載入 Usbser.sys ,請將類別代碼設定為 02,並將 裝置描述元中的子類別代碼設定為 02。 如需詳細資訊,請參閱 USB 通訊裝置類別。 使用此方法時,您不需要為裝置散發 INF 檔案,因為系統使用 Usbser.inf。 如果您的裝置指定類別代碼 02,但非 02 的子類別代碼值, Usbser.sys 不會自動載入。 隨插即用管理員會嘗試尋找驅動程式。 如果找不到適當的驅動程式,裝置可能未載入驅動程式。 在此情況下,您可能必須載入自己的驅動程式,或撰寫參考另一個內建驅動程式的 INF。 如果您的裝置將類別和子類別代碼指定為 02,而且您想要載入另一個驅動程式,而不是 Usbser.sys,則必須撰寫 INF 來指定要安裝之裝置的硬體識別碼和驅動程式。 如需範例,請查看隨附于 範例驅動程式 的 INF 檔案,並尋找類似您裝置的裝置。 如需 INF 區段的相關資訊,請參閱 INF 檔案概觀。

注意

Microsoft 建議您盡可能使用內建驅動程式。 在 windows 的行動版上,例如 Windows 10 行動裝置版,只會載入屬於作業系統一部分的驅動程式。 不同于桌上出版本,您無法透過外部驅動程式套件載入驅動程式。 使用新的內建 INF,如果行動裝置上偵測到 USB 到序列裝置,則會自動載入 Usbser.sys 。

Windows 8.1和舊版

在Windows 8.1和舊版作業系統中,當 USB 到序列裝置連接到電腦時,不會自動載入Usbser.sys。 若要載入驅動程式,您必須撰寫 INF,以使用Include指示詞參考數據機 INF (mdmcpq.inf) 。 需要 指示詞才能具現化服務、複製收件匣二進位檔,以及註冊應用程式尋找裝置並與其通訊所需的裝置介面 GUID。 該 INF 會將 「Usbser」 指定為裝置堆疊中的較低篩選驅動程式。

INF 也需要將裝置設定類別指定為 數據機 ,才能使用 mdmcpq.inf。 在 INF 的 [ 版本 ] 區段下,指定 數據機 和裝置類別 GUID。 如需詳細資訊,請參閱 系統提供的裝置安裝類別。

[DDInstall.NT] include=mdmcpq.inf CopyFiles=FakeModemCopyFileSection [DDInstall.NT.Services] include=mdmcpq.inf AddService=usbser, 0x00000000, LowerFilter_Service_Inst [DDInstall.NT.HW] include=mdmcpq.inf AddReg=LowerFilterAddReg

如需詳細資訊,請參閱 如何使用或參考通用序列匯流排 (USB) 數據機 .inf 檔案中的 Usbser.sys 驅動程式。

設定Usbser.sys的選擇性暫停

從 Windows 10 開始, Usbser.sys支援USB 選擇性暫停。 它可讓連接的 USB 到序列裝置在未使用時進入低電源狀態,而系統仍處於 S0 狀態。 與裝置的通訊繼續時,裝置可以離開暫停狀態並繼續工作狀態。 此功能預設為停用,而且可以透過設定此登錄機碼下的 IdleUsbSelectiveSuspendPolicy 專案來啟用和設定:

HKEY\_LOCAL\_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\USB\\;hardware id;\\;instance id;\\Device Parameters

若要設定 Usbser.sys的電源管理功能,您可以將 IdleUsbSelectiveSuspendPolicy 設定為:

「0x00000001」:在閒置時輸入選擇性暫停,也就是當裝置沒有作用中資料傳輸時。

「0x00000000」:只有在沒有開啟的裝置控制碼時,才會輸入選擇性暫停。

您可以透過下列兩種方式之一來新增該專案:

撰寫參考安裝 INF 的 INF,並在 HW 中新增登錄專案 。AddReg 區段。

描述擴充屬性 OS 功能描述項中的登錄專案。 新增自訂屬性區段,將 bPropertyName 欄位設定為 Unicode 字串 「IdleUsbSelectiveSuspendPolicy」 和 wPropertyNameLength 為 62 個位元組。 將 bPropertyData 欄位設定為 「0x00000001」 或 「0x00000000」。 屬性值會儲存為位元組由小到小的 32 位整數。

如需詳細資訊,請參閱 Microsoft OS 描述元。

開發 USB CDC 裝置的 Windows 應用程式

如果您為 USB CDC 裝置安裝 Usbser.sys ,以下是應用程式程式設計模型選項:

從 Windows 10 開始,Windows 應用程式可以使用Windows.Devices.SerialCommunication命名空間,將要求傳送至Usbser.sys。 它會定義Windows 執行階段類別,這些類別可用來透過序列埠或序列埠的一些抽象概念來與 USB CDC 裝置通訊。 類別提供功能來探索這類序列裝置、讀取和寫入資料,以及控制流程式控制制的特定序列屬性,例如設定傳輸速率、訊號狀態。

在Windows 8.1和舊版中,您可以撰寫可開啟虛擬 COM 埠並與裝置通訊的 Windows 傳統型應用程式。 如需詳細資訊,請參閱

Win32 程式設計模型:

設定通訊資源

通訊參考

.NET Framework 程式設計模型:

System.IO.Ports 命名空間

相關主題

Windows 中包含的 USB 裝置類別驅動程式



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3